<html>
<head><meta charset="utf-8"><title>location-insensitive pre-pass (#29) · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html">location-insensitive pre-pass (#29)</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="126581165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126581165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126581165">(May 15 2018 at 08:21)</a>:</h4>
<p>Spinning off from #4, I was thinking that a way to go faster would be to do a "location-insensitive pre-pass". I sketched the idea here <a href="https://github.com/rust-lang-nursery/borrow-check/issues/29" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/29">https://github.com/rust-lang-nursery/borrow-check/issues/29</a>. Basically we can do a less precise analysis, find out where errors <em>might</em> lie, and then do the more precise version only for those loans etc that are potentially problematic.</p>



<a name="126600148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126600148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126600148">(May 15 2018 at 16:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> one thing to clarify — re: #29 — although we sketched out how to compute the transitive closure for the subset relation, I don't actually think we need to do that in the code</p>



<a name="126600151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126600151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126600151">(May 15 2018 at 16:32)</a>:</h4>
<p>I <em>do</em> think we'll want to compute the transitive <code>requires</code> relation</p>



<a name="126600157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126600157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126600157">(May 15 2018 at 16:32)</a>:</h4>
<p>or at least somewhere we need transitivity :)</p>



<a name="126600475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126600475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126600475">(May 15 2018 at 16:41)</a>:</h4>
<p>in <a href="https://github.com/rust-lang-nursery/borrow-check/issues/29" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/29">#29</a>, I sketched out the <code>requires</code> relation like so:</p>
<div class="codehilite"><pre><span></span>requires(R1, L1) :- borrow_region(R1, L1, _P).
requires(R2, L1) :- requires(R1, L1), subset(R1, R2).
</pre></div>


<p>This version, notably, doesn't require a transitive <code>subset</code> relation to be correct — the second clause will propagate "along" the subset relation. So e.g. if you have two tuples:</p>
<div class="codehilite"><pre><span></span>R1 &lt;= R2
R2 &lt;= R3
</pre></div>


<p>and you have <code>borrow_region(R1, L0)</code>, then the second rule would compute a first pass with just one fact:</p>
<div class="codehilite"><pre><span></span>requires(R1, L0)
</pre></div>


<p>On the second pass, it would use that fact to compute:</p>
<div class="codehilite"><pre><span></span>requires(R2, L0)
</pre></div>


<p>and then in the third round it would add <code>requires(R3, L0)</code>.</p>



<a name="126602619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126602619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126602619">(May 15 2018 at 17:36)</a>:</h4>
<p>hey, I'm back, going to start, thanks for the comments</p>



<a name="126604778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126604778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126604778">(May 15 2018 at 18:25)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> how goes?</p>



<a name="126605088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605088">(May 15 2018 at 18:30)</a>:</h4>
<p>(btw I tried earlier these rules with soufflé on clap, and it was indeed fast, a good sign since it should be faster with the Invalidates facts)</p>



<a name="126605129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605129">(May 15 2018 at 18:31)</a>:</h4>
<p>one thing I am not sure about: today's borrow checker <em>is</em> location-sensitive for the <code>requires</code> relation, but not the <code>subset</code>. We may want that. But since this is only a "pre-filter", we may find we don't need it.</p>



<a name="126605335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605335">(May 15 2018 at 18:34)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> was interrupted here several times so I'm reading the thing and now focused to do it</p>



<a name="126605339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605339">(May 15 2018 at 18:34)</a>:</h4>
<p>was reading the issue</p>



<a name="126605834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605834">(May 15 2018 at 18:46)</a>:</h4>
<div class="codehilite"><pre><span></span>// requires(R1, L1) :- borrow_region(R1, L1, _P).
</pre></div>



<a name="126605842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605842">(May 15 2018 at 18:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> for this example borrow_region is <strong>decl</strong>ared, right?</p>



<a name="126605850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605850">(May 15 2018 at 18:47)</a>:</h4>
<p>what do you mean by "declared"?</p>



<a name="126605853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605853">(May 15 2018 at 18:47)</a>:</h4>
<p>oh, well, <code>borrow_region</code> is an input</p>



<a name="126605857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605857">(May 15 2018 at 18:47)</a>:</h4>
<p>that is, it comes from <code>AllFacts</code></p>



<a name="126605858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605858">(May 15 2018 at 18:47)</a>:</h4>
<p>like <code>outlives</code></p>



<a name="126605861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605861">(May 15 2018 at 18:47)</a>:</h4>
<p>yes</p>



<a name="126605869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605869">(May 15 2018 at 18:47)</a>:</h4>
<p>so it comes with a .decl clause</p>



<a name="126605872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605872">(May 15 2018 at 18:47)</a>:</h4>
<p>in datalog</p>



<a name="126605919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605919">(May 15 2018 at 18:48)</a>:</h4>
<p>yeah, and a <code>.input</code> as well, strictly speaking :)</p>



<a name="126605920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605920">(May 15 2018 at 18:48)</a>:</h4>
<p>.decl + input yes</p>



<a name="126605924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605924">(May 15 2018 at 18:48)</a>:</h4>
<p>yep</p>



<a name="126605933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126605933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126605933">(May 15 2018 at 18:48)</a>:</h4>
<p>just in case asking :)</p>



<a name="126606044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606044">(May 15 2018 at 18:51)</a>:</h4>
<p>I was trying to mimic what you were doing like in here ...</p>



<a name="126606047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606047">(May 15 2018 at 18:51)</a>:</h4>
<div class="codehilite"><pre><span></span>                // .decl subset(Ra, Rb) -- `R1 &lt;= R2` holds
                //
                // subset_base(Ra, Rb) :- outlives(Ra, Rb, _P)
</pre></div>



<a name="126606061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606061">(May 15 2018 at 18:51)</a>:</h4>
<p>but unsure why you use .decl, didn't you mean input?</p>



<a name="126606063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606063">(May 15 2018 at 18:51)</a>:</h4>
<p>nope</p>



<a name="126606066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606066">(May 15 2018 at 18:51)</a>:</h4>
<p>I don't think I added comments for the inputs</p>



<a name="126606068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606068">(May 15 2018 at 18:51)</a>:</h4>
<p>but rather the "derived relations"</p>



<a name="126606079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606079">(May 15 2018 at 18:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> here's how it looks with the naive rules for the soufflé datalog engine <a href="https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe" target="_blank" title="https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe">https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe</a></p>



<a name="126606123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606123">(May 15 2018 at 18:52)</a>:</h4>
<p>so in this case there might be something like: <code>// .decl requires(R, L)</code></p>



<a name="126606131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606131">(May 15 2018 at 18:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> maybe explain what you mean exactly in that comment?</p>



<a name="126606132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606132">(May 15 2018 at 18:52)</a>:</h4>
<p>I read that as a declaration</p>



<a name="126606137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606137">(May 15 2018 at 18:52)</a>:</h4>
<p>and then it could come from input or derived</p>



<a name="126606147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606147">(May 15 2018 at 18:52)</a>:</h4>
<p>if my definition is right, decl by itself unsure what is telling me</p>



<a name="126606152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606152">(May 15 2018 at 18:53)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> that is correct, but <code>subset</code> is not coming from <code>AllFacts</code></p>



<a name="126606156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606156">(May 15 2018 at 18:53)</a>:</h4>
<p><code>outlives</code> is</p>



<a name="126606160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606160">(May 15 2018 at 18:53)</a>:</h4>
<blockquote>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> here's how it looks with the naive rules for the soufflé datalog engine <a href="https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe" target="_blank" title="https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe">https://gist.github.com/lqd/1db97eb478a504314cc47d7d087faefe</a></p>
</blockquote>
<p>checking ...</p>



<a name="126606161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606161">(May 15 2018 at 18:53)</a>:</h4>
<p>the inputs come from <code>AllFacts</code>, you can see them <a href="https://github.com/rust-lang-nursery/borrow-check/blob/4945c130cb1f3af7c072dc9856b6fe21b3a9f1f7/src/output/timely_opt.rs#L74-L82" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/blob/4945c130cb1f3af7c072dc9856b6fe21b3a9f1f7/src/output/timely_opt.rs#L74-L82">being setup here</a></p>



<a name="126606172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606172">(May 15 2018 at 18:53)</a>:</h4>
<blockquote>
<p>if my definition is right, decl by itself unsure what is telling me</p>
</blockquote>
<p>it's just telling you what the "types" of the tuple are</p>



<a name="126606174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606174">(May 15 2018 at 18:53)</a>:</h4>
<p>ahh so you're adding decl for stuff that is not in AllFacts?</p>



<a name="126606178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606178">(May 15 2018 at 18:53)</a>:</h4>
<p>right</p>



<a name="126606181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606181">(May 15 2018 at 18:53)</a>:</h4>
<p>ok</p>



<a name="126606220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606220">(May 15 2018 at 18:54)</a>:</h4>
<p>the types for <code>AllFacts</code> you can find in the struct itself</p>



<a name="126606232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606232">(May 15 2018 at 18:54)</a>:</h4>
<p>so I didn't bother to document them</p>



<a name="126606254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606254">(May 15 2018 at 18:54)</a>:</h4>
<p>ok</p>



<a name="126606275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606275">(May 15 2018 at 18:55)</a>:</h4>
<p>truth is, it doesn't tell you that much :)</p>



<a name="126606345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606345">(May 15 2018 at 18:56)</a>:</h4>
<p>also</p>



<a name="126606347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606347">(May 15 2018 at 18:56)</a>:</h4>
<div class="codehilite"><pre><span></span>                    let borrow_region = borrow_region.enter(&amp;requires.scope());
                    let subset = subset.enter(&amp;requires.scope());
                    let killed = killed.enter(&amp;requires.scope());
                    let region_live_at = region_live_at.enter(&amp;requires.scope());
                    let cfg_edge = cfg_edge.enter(&amp;requires.scope());
                    let universal_region = universal_region.enter(&amp;requires.scope());
</pre></div>



<a name="126606354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606354">(May 15 2018 at 18:57)</a>:</h4>
<p>why did you do all that in the naive part?</p>



<a name="126606382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606382">(May 15 2018 at 18:57)</a>:</h4>
<p>you need to do that whenever you have an <code>iterate</code> call</p>



<a name="126606383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606383">(May 15 2018 at 18:57)</a>:</h4>
<p>ahh I remember you mention something about this subtlety in the video</p>



<a name="126606387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606387">(May 15 2018 at 18:58)</a>:</h4>
<p>yep</p>



<a name="126606416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606416">(May 15 2018 at 18:58)</a>:</h4>
<p>ok</p>



<a name="126606422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606422">(May 15 2018 at 18:58)</a>:</h4>
<p>that is how you bring the things from "outside" the iteration into scope</p>



<a name="126606427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606427">(May 15 2018 at 18:58)</a>:</h4>
<p>within the iteration</p>



<a name="126606433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606433">(May 15 2018 at 18:58)</a>:</h4>
<p>if you don't do that, you will find you get various compilation errors :)</p>



<a name="126606565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126606565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126606565">(May 15 2018 at 19:00)</a>:</h4>
<p>:)</p>



<a name="126609456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609456">(May 15 2018 at 20:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> a couple of questions ...</p>



<a name="126609463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609463">(May 15 2018 at 20:02)</a>:</h4>
<p>ok, ask quick :) I am leaving in 2 minutes</p>



<a name="126609465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609465">(May 15 2018 at 20:02)</a>:</h4>
<p>1. what am I supposed to do with borrow_live_at?</p>



<a name="126609471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609471">(May 15 2018 at 20:02)</a>:</h4>
<p>2. I have some stuff unsure if I'm in the right direction :P</p>



<a name="126609507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609507">(May 15 2018 at 20:03)</a>:</h4>
<p>2 is not a question, it's kind you look at the code and tell me if we are going in good direction :), hehe</p>



<a name="126609550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609550">(May 15 2018 at 20:04)</a>:</h4>
<blockquote>
<p>1. what am I supposed to do with borrow_live_at?</p>
</blockquote>
<p>I think we can define it like:</p>
<div class="codehilite"><pre><span></span>borrow_live_at(L, P) :-
  requires(R, L), region_live_at(R, P)
</pre></div>



<a name="126609554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609554">(May 15 2018 at 20:04)</a>:</h4>
<p>maybe I need to figure out how to test this</p>



<a name="126609558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609558">(May 15 2018 at 20:04)</a>:</h4>
<blockquote>
<p>2. I have some stuff unsure if I'm in the right direction :P</p>
</blockquote>
<p>send me a link ?</p>



<a name="126609567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609567">(May 15 2018 at 20:04)</a>:</h4>
<blockquote>
<p>maybe I need to figure out how to test this</p>
</blockquote>
<p>well, this is the problem :) this is why I was saying we need to work on the integration</p>



<a name="126609570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609570">(May 15 2018 at 20:04)</a>:</h4>
<p>I basically don't know how to test</p>



<a name="126609572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609572">(May 15 2018 at 20:04)</a>:</h4>
<p>but I can probably vet it pretty easily for now</p>



<a name="126609580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609580">(May 15 2018 at 20:04)</a>:</h4>
<p>ok, gotta go, I may be reachable on mobile</p>



<a name="126609585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609585">(May 15 2018 at 20:04)</a>:</h4>
<p><a href="https://gist.github.com/spastorino/2913826a97e56aa5f3470152d3ec4c04" target="_blank" title="https://gist.github.com/spastorino/2913826a97e56aa5f3470152d3ec4c04">https://gist.github.com/spastorino/2913826a97e56aa5f3470152d3ec4c04</a></p>



<a name="126609607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126609607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126609607">(May 15 2018 at 20:05)</a>:</h4>
<p>mainly check the requires part</p>



<a name="126614070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126614070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126614070">(May 15 2018 at 21:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> the requires is not quite setup right</p>



<a name="126614081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126614081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126614081">(May 15 2018 at 21:44)</a>:</h4>
<p>The return value of iterate closure should include the base facts too</p>



<a name="126614103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126614103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126614103">(May 15 2018 at 21:45)</a>:</h4>
<p>If you look at the transitive subset relation we setup you will see what I mean</p>



<a name="126614152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126614152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126614152">(May 15 2018 at 21:46)</a>:</h4>
<p>Also it occurs to me can can write some unit tests with hard coded facts</p>



<a name="126615002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126615002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126615002">(May 15 2018 at 22:05)</a>:</h4>
<p>should requires also depend on subset rather than subset_base ?</p>



<a name="126615868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126615868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126615868">(May 15 2018 at 22:27)</a>:</h4>
<blockquote>
<p>The return value of iterate closure should include the base facts too</p>
</blockquote>
<p>can you explain why?</p>



<a name="126615874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126615874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126615874">(May 15 2018 at 22:27)</a>:</h4>
<p>I may have thought in a wrong way</p>



<a name="126616124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616124">(May 15 2018 at 22:33)</a>:</h4>
<p>what I thought was exactly that those facts were already included in subsets, why do I need to add that in requires?</p>



<a name="126616265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616265">(May 15 2018 at 22:37)</a>:</h4>
<p>I'm not quite sure I understand</p>



<a name="126616332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616332">(May 15 2018 at 22:38)</a>:</h4>
<p>so you have:</p>
<div class="codehilite"><pre><span></span><span class="w">                </span><span class="c1">// requires(R, L) :- borrow_region(R, L, _P).</span>
<span class="w">                </span><span class="kd">let</span><span class="w"> </span><span class="n">requires</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">borrow_region</span><span class="w"></span>
<span class="w">                    </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">,</span><span class="w"> </span><span class="n">_p</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">))</span><span class="w"></span>
<span class="w">                    </span><span class="p">.</span><span class="n">distinct_total</span><span class="p">();</span><span class="w"></span>

<span class="w">                </span><span class="c1">// requires(R2, L) :- requires(R1, L), subset(R1, R2).</span>
<span class="w">                </span><span class="kd">let</span><span class="w"> </span><span class="n">requires</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">requires</span><span class="p">.</span><span class="n">iterate</span><span class="p">(</span><span class="o">|</span><span class="n">requires</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                    </span><span class="kd">let</span><span class="w"> </span><span class="n">subset_base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">subset_base</span><span class="p">.</span><span class="n">enter</span><span class="p">(</span><span class="o">&amp;</span><span class="n">requires</span><span class="p">.</span><span class="n">scope</span><span class="p">());</span><span class="w"></span>

<span class="w">                    </span><span class="n">requires</span><span class="w"></span>
<span class="w">                        </span><span class="p">.</span><span class="n">join</span><span class="p">(</span><span class="o">&amp;</span><span class="n">subset_base</span><span class="p">)</span><span class="w"></span>
<span class="w">                        </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">r1</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">,</span><span class="w"> </span><span class="n">r2</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">r2</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">))</span><span class="w"></span>
<span class="w">                        </span><span class="p">.</span><span class="n">distinct_total</span><span class="p">()</span><span class="w"></span>
<span class="w">                </span><span class="p">});</span><span class="w"></span>
</pre></div>



<a name="126616371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616371">(May 15 2018 at 22:39)</a>:</h4>
<p>but you need something like:</p>
<div class="codehilite"><pre><span></span><span class="w">                </span><span class="c1">// requires(R, L) :- borrow_region(R, L, _P).</span>
<span class="w">                </span><span class="kd">let</span><span class="w"> </span><span class="n">requires_base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">borrow_region</span><span class="w"></span>
<span class="w">                    </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">,</span><span class="w"> </span><span class="n">_p</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">))</span><span class="w"></span>
<span class="w">                    </span><span class="p">.</span><span class="n">distinct_total</span><span class="p">();</span><span class="w"></span>

<span class="w">                </span><span class="c1">// requires(R2, L) :- requires(R1, L), subset(R1, R2).</span>
<span class="w">                </span><span class="kd">let</span><span class="w"> </span><span class="n">requires</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">requires_base</span><span class="p">.</span><span class="n">iterate</span><span class="p">(</span><span class="o">|</span><span class="n">requires</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                    </span><span class="kd">let</span><span class="w"> </span><span class="n">subset_base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">subset_base</span><span class="p">.</span><span class="n">enter</span><span class="p">(</span><span class="o">&amp;</span><span class="n">requires</span><span class="p">.</span><span class="n">scope</span><span class="p">());</span><span class="w"></span>
<span class="w">                    </span><span class="kd">let</span><span class="w"> </span><span class="n">requires_base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">requires_base</span><span class="p">.</span><span class="n">enter</span><span class="p">(</span><span class="o">&amp;</span><span class="n">requires</span><span class="p">.</span><span class="n">scope</span><span class="p">());</span><span class="w"></span>

<span class="w">                    </span><span class="kd">let</span><span class="w"> </span><span class="n">requires1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">requires_base</span><span class="p">.</span><span class="n">clone</span><span class="p">();</span><span class="w"></span>

<span class="w">                    </span><span class="kd">let</span><span class="w"> </span><span class="n">requires2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">requires</span><span class="w"></span>
<span class="w">                        </span><span class="p">.</span><span class="n">join</span><span class="p">(</span><span class="o">&amp;</span><span class="n">subset_base</span><span class="p">)</span><span class="w"></span>
<span class="w">                        </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">r1</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">,</span><span class="w"> </span><span class="n">r2</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">r2</span><span class="p">,</span><span class="w"> </span><span class="n">l</span><span class="p">));</span><span class="w"></span>

<span class="w">                    </span><span class="n">requires1</span><span class="p">.</span><span class="n">concat</span><span class="p">(</span><span class="o">&amp;</span><span class="n">requires2</span><span class="p">).</span><span class="n">distinct_total</span><span class="p">()</span><span class="w"></span>
<span class="w">                </span><span class="p">});</span><span class="w"></span>
</pre></div>



<a name="126616400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616400">(May 15 2018 at 22:39)</a>:</h4>
<blockquote>
<p>should requires also depend on subset rather than subset_base ?</p>
</blockquote>
<p>well, yes, but really the distinction isnt' needed; that is, we should remove <code>subset</code> (which is just transitive closure of <code>subset_base</code>) and rename <code>subset_base</code> to <code>subset</code></p>



<a name="126616488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616488">(May 15 2018 at 22:41)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> </p>
<blockquote>
<p>can you explain why?</p>
</blockquote>
<p>anyway, the reason for that setup:</p>
<ul>
<li>the <code>iterate</code> closure takes as input the tuples in round N</li>
<li>it returns the set of tuples in round N+1</li>
</ul>
<p>this return set doesn't <em>have</em> to include the tuples from round N; but in our case, we want it to, because we want the final set to  be strictly growing and getting bigger</p>



<a name="126616630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616630">(May 15 2018 at 22:44)</a>:</h4>
<p>ahhh I see</p>



<a name="126616638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616638">(May 15 2018 at 22:45)</a>:</h4>
<p>this explaination makes sense</p>



<a name="126616649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616649">(May 15 2018 at 22:45)</a>:</h4>
<p>will get back to this tomorrow</p>



<a name="126616840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126616840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126616840">(May 15 2018 at 22:49)</a>:</h4>
<p>ah yes haha, I had tested the query before and actually forgot we specifically didn't want the subset TC here <span class="emoji emoji-1f62d" title="sob">:sob:</span></p>



<a name="126641852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126641852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126641852">(May 16 2018 at 12:01)</a>:</h4>
<p>btw, <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, as I was saying <a href="#narrow/stream/122657-wg-nll/subject/integrating-borrow-check-and-rustc/near/126635433" title="#narrow/stream/122657-wg-nll/subject/integrating-borrow-check-and-rustc/near/126635433">in this message</a> I resurrected my branch of rustc that directly uses the borrow-check logic. We could in principle test your analysis by forking this branch and copying-and-pasting it in. It's not very convenient but it would be a kind of "sanity check"</p>



<a name="126642131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642131">(May 16 2018 at 12:10)</a>:</h4>
<p>ok</p>



<a name="126642135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642135">(May 16 2018 at 12:10)</a>:</h4>
<p>yeah, when I've said test yesterday I didn't mean to do anything fancy, just run the thing and see if it does something :)</p>



<a name="126642140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642140">(May 16 2018 at 12:11)</a>:</h4>
<p>but anyway, what you say seems to make more sense anyway (?)</p>



<a name="126642151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642151">(May 16 2018 at 12:11)</a>:</h4>
<p>well it would be nice if we had a cleaner way of integrating the borrow-check execution with rustc</p>



<a name="126642892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642892">(May 16 2018 at 12:34)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> in the code you pasted yesterday</p>



<a name="126642895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642895">(May 16 2018 at 12:34)</a>:</h4>
<p>do we need to call distinct_total or distinct?</p>



<a name="126642897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642897">(May 16 2018 at 12:34)</a>:</h4>
<p>you put distinct_total but in naive analysis for requires distinct is being called</p>



<a name="126642905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642905">(May 16 2018 at 12:35)</a>:</h4>
<p>unsure if in this part we have the subtleties you mentioned me on the call</p>



<a name="126642909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642909">(May 16 2018 at 12:35)</a>:</h4>
<p>distinct_total (distinct does more stuff we probably don't need here, IIRC)</p>



<a name="126642949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642949">(May 16 2018 at 12:36)</a>:</h4>
<p>yep, Niko told me that yesterday</p>



<a name="126642951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642951">(May 16 2018 at 12:36)</a>:</h4>
<p>but in naive for the same case distinct was called</p>



<a name="126642954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642954">(May 16 2018 at 12:36)</a>:</h4>
<p>so I was unsure if was a case where we need it or not</p>



<a name="126642970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642970">(May 16 2018 at 12:37)</a>:</h4>
<p>anyway, it's true that naive requires part is more complex than this one ... so ... unsure</p>



<a name="126642972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642972">(May 16 2018 at 12:37)</a>:</h4>
<p>will leave as distinct_total then :)</p>



<a name="126642976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642976">(May 16 2018 at 12:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> they could both be <code>distinct_total</code></p>



<a name="126642979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126642979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126642979">(May 16 2018 at 12:37)</a>:</h4>
<p>Naive is older and less optimized yeah</p>



<a name="126643017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126643017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126643017">(May 16 2018 at 12:38)</a>:</h4>
<p>ok</p>



<a name="126643021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126643021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126643021">(May 16 2018 at 12:38)</a>:</h4>
<p>I left it that way to make timely-opt look faster in comparison :P</p>



<a name="126643024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126643024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126643024">(May 16 2018 at 12:38)</a>:</h4>
<p>hehe</p>



<a name="126643025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126643025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126643025">(May 16 2018 at 12:38)</a>:</h4>
<p>(and because I didn't want to change it — it is kind of the "most obviously correct" thing the way it is)</p>



<a name="126644825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644825">(May 16 2018 at 13:24)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so ... as we were talking yesterday, in location insensitive we also want borrow_live_at which considers a fixed point P, right?</p>



<a name="126644834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644834">(May 16 2018 at 13:24)</a>:</h4>
<p>yeah, but it would use the results of the <code>requires</code> location which <em>doesn't</em> take <code>P</code></p>



<a name="126644835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644835">(May 16 2018 at 13:24)</a>:</h4>
<p>exactly</p>



<a name="126644847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644847">(May 16 2018 at 13:25)</a>:</h4>
<p>so basically the "location sensitivity" comes from the <code>region_live_at</code> tuples</p>



<a name="126644850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644850">(May 16 2018 at 13:25)</a>:</h4>
<p>yes</p>



<a name="126644927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126644927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126644927">(May 16 2018 at 13:26)</a>:</h4>
<p>what about universal regions?</p>



<a name="126645025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645025">(May 16 2018 at 13:28)</a>:</h4>
<p>heh, good timing for that question</p>



<a name="126645037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645037">(May 16 2018 at 13:29)</a>:</h4>
<p>I'm planning to remove that distinction; see <a href="#narrow/stream/122657-wg-nll/subject/pending-nll-simplifications/near/126645015" title="#narrow/stream/122657-wg-nll/subject/pending-nll-simplifications/near/126645015">this comment</a></p>



<a name="126645040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645040">(May 16 2018 at 13:29)</a>:</h4>
<p>but for now you could transform the <code>universal_regions</code> facts into <code>region_live_at</code> facts the same way that <code>timely_opt</code> does</p>



<a name="126645044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645044">(May 16 2018 at 13:29)</a>:</h4>
<p>ok</p>



<a name="126645049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645049">(May 16 2018 at 13:29)</a>:</h4>
<p>(I linked to the code in that comment)</p>



<a name="126645051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126645051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126645051">(May 16 2018 at 13:30)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126650363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650363">(May 16 2018 at 15:29)</a>:</h4>
<div class="codehilite"><pre><span></span>                // borrow_live_at(L, P) :-
                //     requires(R, L), region_live_at(R, P)
                let borrow_live_at = requires
                    .semijoin(&amp;region_live_at)
                    .map(|(_r, l, p)| (l, p));
</pre></div>



<a name="126650366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650366">(May 16 2018 at 15:29)</a>:</h4>
<p>I'm getting this ...</p>



<a name="126650368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650368">(May 16 2018 at 15:29)</a>:</h4>
<div class="codehilite"><pre><span></span>error[E0308]: mismatched types
   --&gt; src/output/location_insensitive.rs:132:31
    |
132 |                     .semijoin(&amp;region_live_at)
    |                               ^^^^^^^^^^^^^^^ expected struct `facts::Region`, found tuple
    |
    = note: expected type `&amp;differential_dataflow::Collection&lt;timely::dataflow::scopes::Child&lt;&#39;_, timely::dataflow::scopes::Root&lt;timely_communication::allocator::generic::Generic&gt;, ()&gt;, facts::Region, _&gt;`
               found type `&amp;differential_dataflow::Collection&lt;timely::dataflow::scopes::Child&lt;&#39;_, timely::dataflow::scopes::Root&lt;timely_communication::allocator::generic::Generic&gt;, ()&gt;, (facts::Region, facts::Point)&gt;`
</pre></div>



<a name="126650425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650425">(May 16 2018 at 15:30)</a>:</h4>
<p>unsure exactly why is semijoin expecting that</p>



<a name="126650447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650447">(May 16 2018 at 15:31)</a>:</h4>
<p>maybe that's affected after the fix for universal regions?</p>



<a name="126650460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650460">(May 16 2018 at 15:31)</a>:</h4>
<p>no, it's not</p>



<a name="126650532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650532">(May 16 2018 at 15:33)</a>:</h4>
<p>can you send me link to the current commit?</p>



<a name="126650548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650548">(May 16 2018 at 15:33)</a>:</h4>
<p>sure</p>



<a name="126650550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650550">(May 16 2018 at 15:33)</a>:</h4>
<p>gimme a sec</p>



<a name="126650611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650611">(May 16 2018 at 15:34)</a>:</h4>
<p><a href="https://github.com/spastorino/borrow-check/commit/b08864f42c14bb69c004215deca6639d4a64668c" target="_blank" title="https://github.com/spastorino/borrow-check/commit/b08864f42c14bb69c004215deca6639d4a64668c">https://github.com/spastorino/borrow-check/commit/b08864f42c14bb69c004215deca6639d4a64668c</a></p>



<a name="126650724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650724">(May 16 2018 at 15:36)</a>:</h4>
<p>I think you just want <code>join</code></p>



<a name="126650725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650725">(May 16 2018 at 15:36)</a>:</h4>
<p>not <code>semijoin</code></p>



<a name="126650730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650730">(May 16 2018 at 15:36)</a>:</h4>
<p>that is, you want to take information from both sides</p>



<a name="126650738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650738">(May 16 2018 at 15:36)</a>:</h4>
<p>the <code>L</code> from one, the <code>P</code> from the other</p>



<a name="126650744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650744">(May 16 2018 at 15:36)</a>:</h4>
<p><code>semijoin</code> is more like "intersect"</p>



<a name="126650747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650747">(May 16 2018 at 15:36)</a>:</h4>
<p>can you explain again the difference?</p>



<a name="126650751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650751">(May 16 2018 at 15:36)</a>:</h4>
<p>it's roughly what I just wrote :0</p>



<a name="126650755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650755">(May 16 2018 at 15:36)</a>:</h4>
<p>ok</p>



<a name="126650757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650757">(May 16 2018 at 15:36)</a>:</h4>
<p>that is, if you do <code>foo.semijoin(bar)</code></p>



<a name="126650760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650760">(May 16 2018 at 15:37)</a>:</h4>
<p>that is basically <code>foo - bar</code></p>



<a name="126650762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650762">(May 16 2018 at 15:37)</a>:</h4>
<p>I read something about empty collections for semijoin</p>



<a name="126650766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650766">(May 16 2018 at 15:37)</a>:</h4>
<p>er</p>



<a name="126650767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650767">(May 16 2018 at 15:37)</a>:</h4>
<p>sorry</p>



<a name="126650771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650771">(May 16 2018 at 15:37)</a>:</h4>
<p><code>foo &amp;&amp; bar</code></p>



<a name="126650774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650774">(May 16 2018 at 15:37)</a>:</h4>
<p>like, the tuples that are in both</p>



<a name="126650780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650780">(May 16 2018 at 15:37)</a>:</h4>
<p>but for that to make sense they must have the same types of tuples</p>



<a name="126650790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650790">(May 16 2018 at 15:37)</a>:</h4>
<p>that's not 100% true, I think it only considers the first half of <code>foo</code>...</p>



<a name="126650833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650833">(May 16 2018 at 15:38)</a>:</h4>
<p>that is, <code>foo</code> might look like <code>(K, V)</code> but then <code>bar</code> must have type <code>K</code></p>



<a name="126650839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126650839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126650839">(May 16 2018 at 15:38)</a>:</h4>
<p>in this case you have <code>foo</code> with type <code>(R, L)</code> and <code>bar</code> with type <code>(R, P)</code></p>



<a name="126651025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651025">(May 16 2018 at 15:42)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126651027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651027">(May 16 2018 at 15:42)</a>:</h4>
<p>another thing now</p>



<a name="126651031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651031">(May 16 2018 at 15:42)</a>:</h4>
<p>what do you want to do with the dump_enabled part?</p>



<a name="126651042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651042">(May 16 2018 at 15:43)</a>:</h4>
<p>should I make that work? remove something or what's the idea?</p>



<a name="126651110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651110">(May 16 2018 at 15:44)</a>:</h4>
<p>and case to make it work, Output struct for subset has Point, Region, Region, now there's no Point anymore</p>



<a name="126651112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651112">(May 16 2018 at 15:44)</a>:</h4>
<p>we want to create a new Output struct?</p>



<a name="126651114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651114">(May 16 2018 at 15:45)</a>:</h4>
<p>or what was your idea?</p>



<a name="126651224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651224">(May 16 2018 at 15:47)</a>:</h4>
<p>hmm good question =)</p>



<a name="126651265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651265">(May 16 2018 at 15:48)</a>:</h4>
<p>I guess add more fields .. ?</p>



<a name="126651266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651266">(May 16 2018 at 15:48)</a>:</h4>
<p>it seems ok to add more fields</p>



<a name="126651268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651268">(May 16 2018 at 15:48)</a>:</h4>
<p>that is, those are basically meant to be debug data</p>



<a name="126651273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651273">(May 16 2018 at 15:48)</a>:</h4>
<p>so if we have a <code>subset_anywhere</code> field or something</p>



<a name="126651275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651275">(May 16 2018 at 15:48)</a>:</h4>
<p>and at most one has data</p>



<a name="126651278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651278">(May 16 2018 at 15:48)</a>:</h4>
<p>depending on the algorithm</p>



<a name="126651281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651281">(May 16 2018 at 15:48)</a>:</h4>
<p>that .. would be ok</p>



<a name="126651284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651284">(May 16 2018 at 15:48)</a>:</h4>
<p>probably a good idea to add that so that we can at least dump the results</p>



<a name="126651285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126651285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126651285">(May 16 2018 at 15:48)</a>:</h4>
<p>and get some idea what it is doing :)</p>



<a name="126652307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652307">(May 16 2018 at 16:12)</a>:</h4>
<p>ok</p>



<a name="126652630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652630">(May 16 2018 at 16:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> what's update_degrees ?</p>



<a name="126652632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652632">(May 16 2018 at 16:20)</a>:</h4>
<p>that also needs a Point</p>



<a name="126652634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652634">(May 16 2018 at 16:20)</a>:</h4>
<p>oh, you can just delete that</p>



<a name="126652640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652640">(May 16 2018 at 16:21)</a>:</h4>
<p>that was tracking the in-degree and out-degree of each region in the subset graph</p>



<a name="126652651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652651">(May 16 2018 at 16:21)</a>:</h4>
<p>(we could probably just delete that whole set of code...)</p>



<a name="126652654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652654">(May 16 2018 at 16:21)</a>:</h4>
<p>but at least I would delete the call in your branch</p>



<a name="126652659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126652659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126652659">(May 16 2018 at 16:21)</a>:</h4>
<p>er, your module</p>



<a name="126654061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654061">(May 16 2018 at 16:56)</a>:</h4>
<p>hey, back ... ok <span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126654953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654953">(May 16 2018 at 17:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/spastorino/borrow-check/commit/18c5b7f63db904c71f61391add1ae50a93a88495" target="_blank" title="https://github.com/spastorino/borrow-check/commit/18c5b7f63db904c71f61391add1ae50a93a88495">https://github.com/spastorino/borrow-check/commit/18c5b7f63db904c71f61391add1ae50a93a88495</a></p>



<a name="126654960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654960">(May 16 2018 at 17:16)</a>:</h4>
<p>it's kind of ready I guess</p>



<a name="126654970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654970">(May 16 2018 at 17:16)</a>:</h4>
<p>unsure how to follow</p>



<a name="126654974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654974">(May 16 2018 at 17:16)</a>:</h4>
<p>at least is compiling</p>



<a name="126654976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126654976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126654976">(May 16 2018 at 17:16)</a>:</h4>
<p>haven't tried anything with it yet</p>



<a name="126655084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655084">(May 16 2018 at 17:18)</a>:</h4>
<p>maybe remove the subset transitive closure ? :)</p>



<a name="126655097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655097">(May 16 2018 at 17:18)</a>:</h4>
<p>(the part marked with "remove this")</p>



<a name="126655110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655110">(May 16 2018 at 17:19)</a>:</h4>
<p>ouch :)</p>



<a name="126655111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655111">(May 16 2018 at 17:19)</a>:</h4>
<p>hehe</p>



<a name="126655112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655112">(May 16 2018 at 17:19)</a>:</h4>
<p>I need to code review myself again</p>



<a name="126655208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655208">(May 16 2018 at 17:21)</a>:</h4>
<p>fixed</p>



<a name="126655209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655209">(May 16 2018 at 17:21)</a>:</h4>
<p>and maybe even better</p>



<a name="126655211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655211">(May 16 2018 at 17:21)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/borrow-check/pull/32" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/pull/32">https://github.com/rust-lang-nursery/borrow-check/pull/32</a></p>



<a name="126655258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655258">(May 16 2018 at 17:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="116113">@lqd</span> <span class="emoji emoji-261d" title="point up">:point_up:</span></p>



<a name="126655287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655287">(May 16 2018 at 17:23)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> good job :) did you try to run it on clap to see how fast it runs btw ?</p>



<a name="126655331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655331">(May 16 2018 at 17:24)</a>:</h4>
<p>haven't done anything yet</p>



<a name="126655337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126655337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126655337">(May 16 2018 at 17:24)</a>:</h4>
<p>just pushed that to start discussing following steps</p>



<a name="126661470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661470">(May 16 2018 at 19:43)</a>:</h4>
<div class="codehilite"><pre><span></span>[santiago@archlinux borrow-check (location_insensitive)]$ cargo run --release -- --skip-tuples inputs/clap-rs/app-parser-\{\{impl\}\}-add_defaults/ | head
    Finished release [optimized] target(s) in 0.07s
     Running `target/release/borrow-check --skip-tuples &#39;inputs/clap-rs/app-parser-{{impl}}-add_defaults/&#39;`
--------------------------------------------------
Directory: inputs/clap-rs/app-parser-{{impl}}-add_defaults/
Time: 117.131s
[santiago@archlinux borrow-check (location_insensitive)]$ cargo run --release -- --skip-tuples -a LocationInsensitive inputs/clap-rs/app-parser-\{\{impl\}\}-add_defaults/ | head
    Finished release [optimized] target(s) in 0.07s
     Running `target/release/borrow-check --skip-tuples -a LocationInsensitive &#39;inputs/clap-rs/app-parser-{{impl}}-add_defaults/&#39;`
--------------------------------------------------
Directory: inputs/clap-rs/app-parser-{{impl}}-add_defaults/
Time: 2.058s
</pre></div>



<a name="126661515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661515">(May 16 2018 at 19:44)</a>:</h4>
<p>it's just a bit faster :P</p>



<a name="126661537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661537">(May 16 2018 at 19:45)</a>:</h4>
<p>~57x faster for that example</p>



<a name="126661583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661583">(May 16 2018 at 19:46)</a>:</h4>
<p>unsure how representative it is</p>



<a name="126661815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661815">(May 16 2018 at 19:51)</a>:</h4>
<p>just for comparison how fast does <code>-a timelyopt</code>run on your machine btw ?</p>



<a name="126661999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126661999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126661999">(May 16 2018 at 19:55)</a>:</h4>
<p>(Naive — the default slow one is mostly here for "historical" purposes :)</p>



<a name="126662006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662006">(May 16 2018 at 19:55)</a>:</h4>
<p>~8x faster</p>



<a name="126662007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662007">(May 16 2018 at 19:55)</a>:</h4>
<div class="codehilite"><pre><span></span>[santiago@archlinux borrow-check (location_insensitive)]$ cargo run --release -- --skip-tuples -a TimelyOpt inputs/clap-rs/app-parser-\{\{impl\}\}-add_defaults/ | head
    Finished release [optimized] target(s) in 0.10s
     Running `target/release/borrow-check --skip-tuples -a TimelyOpt &#39;inputs/clap-rs/app-parser-{{impl}}-add_defaults/&#39;`
--------------------------------------------------
Directory: inputs/clap-rs/app-parser-{{impl}}-add_defaults/
Time: 16.729s
</pre></div>



<a name="126662063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662063">(May 16 2018 at 19:56)</a>:</h4>
<p>awesome, thank you</p>



<a name="126662077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662077">(May 16 2018 at 19:57)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126662079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662079">(May 16 2018 at 19:57)</a>:</h4>
<p>also added that info to the PR</p>



<a name="126662340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662340">(May 16 2018 at 20:03)</a>:</h4>
<p>hopefully adding the Invalidates facts allows avoiding even more computation, as this would just be a first quick pass, before timelyopt</p>



<a name="126662456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126662456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126662456">(May 16 2018 at 20:05)</a>:</h4>
<p>(I think, at least :)</p>



<a name="126663931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126663931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126663931">(May 16 2018 at 20:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> nice! So</p>



<a name="126663943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126663943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126663943">(May 16 2018 at 20:37)</a>:</h4>
<p>the next part is the interesting part, really :)</p>



<a name="126664021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664021">(May 16 2018 at 20:38)</a>:</h4>
<p>:)</p>



<a name="126664023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664023">(May 16 2018 at 20:38)</a>:</h4>
<p>shoot</p>



<a name="126664054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664054">(May 16 2018 at 20:39)</a>:</h4>
<p>the one funny thing about zulip :)</p>



<a name="126664055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664055">(May 16 2018 at 20:39)</a>:</h4>
<p>threads are so good at keeping state</p>



<a name="126664056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664056">(May 16 2018 at 20:39)</a>:</h4>
<p>I have to decide what to put in the issue vs here ;)</p>



<a name="126664103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664103">(May 16 2018 at 20:40)</a>:</h4>
<p>luckily we can have good links :)</p>



<a name="126664109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664109">(May 16 2018 at 20:40)</a>:</h4>
<p>anyway, the idea is roughly what <span class="user-mention" data-user-id="116113">@lqd</span> said: that we can use this as a pre-pass to narrow down <em>where</em> we might have errors</p>



<a name="126664115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664115">(May 16 2018 at 20:40)</a>:</h4>
<p>specifically, which (L, P) points may be in error</p>



<a name="126664122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664122">(May 16 2018 at 20:41)</a>:</h4>
<p>to truly figure that out we need the <code>invalidates</code> facts that <span class="user-mention" data-user-id="116106">@Reed Koser</span> has a PR for</p>



<a name="126664128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664128">(May 16 2018 at 20:41)</a>:</h4>
<p>but we can do some of the follow-up work even now</p>



<a name="126664131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664131">(May 16 2018 at 20:41)</a>:</h4>
<p>just "as if" we had them</p>



<a name="126664137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664137">(May 16 2018 at 20:41)</a>:</h4>
<p>the idea then is: if we know which (L, P) pairs are potentially in error,</p>



<a name="126664167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664167">(May 16 2018 at 20:42)</a>:</h4>
<p>we should be able to narrow down and avoid work</p>



<a name="126664335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664335">(May 16 2018 at 20:45)</a>:</h4>
<p>one annoying problem:</p>



<a name="126664339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664339">(May 16 2018 at 20:45)</a>:</h4>
<p>without some integration into rustc</p>



<a name="126664342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664342">(May 16 2018 at 20:45)</a>:</h4>
<p>it's going to be kinda hard to test this</p>



<a name="126664429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664429">(May 16 2018 at 20:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> let me first check your PR :)</p>



<a name="126664512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664512">(May 16 2018 at 20:48)</a>:</h4>
<p>looks pretty good, found one nit</p>



<a name="126664670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126664670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126664670">(May 16 2018 at 20:51)</a>:</h4>
<p>I have to run to a meeting now</p>



<a name="126677233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126677233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126677233">(May 17 2018 at 02:46)</a>:</h4>
<p>hey just checked all this, tomorrow morning will try to tackle some of the stuff, did you open an issue?</p>



<a name="126677381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126677381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126677381">(May 17 2018 at 02:52)</a>:</h4>
<p>and fixed the PR</p>



<a name="126686385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126686385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126686385">(May 17 2018 at 08:09)</a>:</h4>
<p>I didn't open a new issue, I think this still falls under the original one</p>



<a name="126700739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126700739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126700739">(May 17 2018 at 14:47)</a>:</h4>
<p>hey <span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm with time now to tackle this</p>



<a name="126700751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126700751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126700751">(May 17 2018 at 14:47)</a>:</h4>
<p>but unsure I follow exactly what's next</p>



<a name="126700804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126700804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126700804">(May 17 2018 at 14:48)</a>:</h4>
<p>the information of what needs to be done you said is in the issue?</p>



<a name="126701678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126701678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126701678">(May 17 2018 at 15:05)</a>:</h4>
<p>yeah, sort of — sorry, in rustc meeting right now, but done soon</p>



<a name="126703156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126703156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126703156">(May 17 2018 at 15:33)</a>:</h4>
<p>ok, <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, I'm around now, are you?</p>



<a name="126704017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704017">(May 17 2018 at 15:47)</a>:</h4>
<p>(deleted)</p>



<a name="126704069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704069">(May 17 2018 at 15:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> back</p>



<a name="126704114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704114">(May 17 2018 at 15:49)</a>:</h4>
<p>ok so <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I'm skimming to see if I left any relevant notes anywhere ;)</p>



<a name="126704117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704117">(May 17 2018 at 15:49)</a>:</h4>
<p>we have to kind of decide where in the pipeline to start from</p>



<a name="126704174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704174">(May 17 2018 at 15:50)</a>:</h4>
<p>are you clear on the overall flow I have in mind though? (like, how we can use this "prepass" to speed up second half?)</p>



<a name="126704285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704285">(May 17 2018 at 15:52)</a>:</h4>
<p>so ... what I got is that you want to run this first because a lot of programs may just be ok with it</p>



<a name="126704287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704287">(May 17 2018 at 15:52)</a>:</h4>
<p>and if fails</p>



<a name="126704295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704295">(May 17 2018 at 15:52)</a>:</h4>
<p>we need finer grained checks like what other algorithms do</p>



<a name="126704300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704300">(May 17 2018 at 15:52)</a>:</h4>
<p>I don't know exactly what timely_opt does</p>



<a name="126704323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704323">(May 17 2018 at 15:53)</a>:</h4>
<p>right so</p>



<a name="126704330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704330">(May 17 2018 at 15:53)</a>:</h4>
<p>the idea is also that from this first analysis</p>



<a name="126704331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704331">(May 17 2018 at 15:53)</a>:</h4>
<p>we can get back a set of (L, P) pairs where there may be errors</p>



<a name="126704379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704379">(May 17 2018 at 15:54)</a>:</h4>
<p>i.e., this loan L is invalidated at the point P, but it is still required because of some live references</p>



<a name="126704385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704385">(May 17 2018 at 15:54)</a>:</h4>
<p>in fact, we can actually get (R, L, P) pairs I suppose</p>



<a name="126704388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704388">(May 17 2018 at 15:54)</a>:</h4>
<p>where R is the region of the live reference</p>



<a name="126704434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704434">(May 17 2018 at 15:55)</a>:</h4>
<div class="codehilite"><pre><span></span>potential_errors(R, L, P) :-
  invalidated(L, P),
  requires(R, L),
  region_live_at(R, P).
</pre></div>



<a name="126704474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704474">(May 17 2018 at 15:56)</a>:</h4>
<p>well with R added you said</p>



<a name="126704477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704477">(May 17 2018 at 15:56)</a>:</h4>
<p>so there are two important parts to flesh out (but maybe not in this order):</p>
<ul>
<li>how do we go from the results you have to those (R, L, P) errors?<ul>
<li>this depends on <span class="user-mention" data-user-id="116106">@Reed Koser</span>'s PR basically to generate the <code>Invalidated</code> tuples. As I wrote just now in a different thread, we can actually just build that PR locally and run it if we want to generate the input data, we don't have to wait for it to land.</li>
</ul>
</li>
<li>given those (R, L, P) tuples, how can we use that to speed up the second analysis?<ul>
<li>my thought was maybe we should play with this, and synthesize some of the tuples oursleves for testing purposes, but I'm not 100% sure</li>
</ul>
</li>
</ul>



<a name="126704482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704482">(May 17 2018 at 15:56)</a>:</h4>
<p>yeah that's the basic idea</p>



<a name="126704574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704574">(May 17 2018 at 15:58)</a>:</h4>
<p>what does <code>how do we go from the results you have to those (R, L, P) errors?</code> means?</p>



<a name="126704591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704591">(May 17 2018 at 15:58)</a>:</h4>
<p>my question is related to my english disability to understand exactly what do I need to do with that</p>



<a name="126704605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704605">(May 17 2018 at 15:59)</a>:</h4>
<p><code>given those (R, L, P) tuples, how can we use that to speed up the second analysis?</code> what's the "second" analysis?</p>



<a name="126704623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704623">(May 17 2018 at 15:59)</a>:</h4>
<p><code>my thought was maybe we should play with this, and synthesize some of the tuples oursleves for testing purposes, but I'm not 100% sure</code> not sure what this means</p>



<a name="126704624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704624">(May 17 2018 at 15:59)</a>:</h4>
<p>so 3 questions :)</p>



<a name="126704629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704629">(May 17 2018 at 15:59)</a>:</h4>
<blockquote>
<p>what does <code>how do we go from the results you have to those (R, L, P) errors?</code> means?</p>
</blockquote>
<p>currently your branch computes <code>region_live_at</code> tuples or something like that, right?</p>



<a name="126704694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704694">(May 17 2018 at 16:00)</a>:</h4>
<p>all I was saying is: we could try to implement <a href="#narrow/stream/122657-wg-nll/subject/location-insensitive.20pre-pass.20(.2329)/near/126704434" title="#narrow/stream/122657-wg-nll/subject/location-insensitive.20pre-pass.20(.2329)/near/126704434">these rules that you already gave</a></p>



<a name="126704704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704704">(May 17 2018 at 16:00)</a>:</h4>
<blockquote>
<p><code>given those (R, L, P) tuples, how can we use that to speed up the second analysis?</code> what's the "second" analysis?</p>
</blockquote>
<p>the second one is the "precise one" — TimelyOpt. Put another way, your "location insensitive analysis" would get integrated into <code>TimelyOpt</code>, not be a distinct thing.</p>



<a name="126704726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704726">(May 17 2018 at 16:01)</a>:</h4>
<blockquote>
<p><code>my thought was maybe we should play with this, and synthesize some of the tuples oursleves for testing purposes, but I'm not 100% sure</code> not sure what this means</p>
</blockquote>
<p>OK, so, the pipeline is this:</p>



<a name="126704736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704736">(May 17 2018 at 16:01)</a>:</h4>
<ul>
<li>insensitive analysis takes raw inputs, produces a <code>PotentialError(R, L, P)</code> relation</li>
</ul>



<a name="126704778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704778">(May 17 2018 at 16:02)</a>:</h4>
<ul>
<li>TimelyOpt takes <code>PotentialError(R, L, P)</code> (plus raw inputs) to produce <code>TrueError(L, P)</code></li>
</ul>



<a name="126704792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704792">(May 17 2018 at 16:02)</a>:</h4>
<p>internally, <code>TrueError(L, P)</code> is based on the same rules as today, but we only have to compute it for those <code>(L, P)</code> pairs for which there are potential errors</p>



<a name="126704874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704874">(May 17 2018 at 16:04)</a>:</h4>
<p>got it</p>



<a name="126704881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704881">(May 17 2018 at 16:04)</a>:</h4>
<p>makes perfect sense</p>



<a name="126704886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704886">(May 17 2018 at 16:04)</a>:</h4>
<p>that doesn't mean I won't have more questions, though :P</p>



<a name="126704917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704917">(May 17 2018 at 16:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> so specifically I was thinking we should focus on this very last bit</p>



<a name="126704921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704921">(May 17 2018 at 16:06)</a>:</h4>
<p>how can we speed up timely-opt given that set of potential errors</p>



<a name="126704964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704964">(May 17 2018 at 16:06)</a>:</h4>
<p>I think it is roughly this:</p>



<a name="126704968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704968">(May 17 2018 at 16:06)</a>:</h4>
<p>we can use the <code>subset_anywhere</code> and <code>requires_anywhere</code> relations you've already built</p>



<a name="126704969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704969">(May 17 2018 at 16:06)</a>:</h4>
<p>to find out which regions <em>might</em> be involved</p>



<a name="126704978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704978">(May 17 2018 at 16:07)</a>:</h4>
<p>then we can limit the <code>subset</code> computation to only take place for those regions</p>



<a name="126704985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126704985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126704985">(May 17 2018 at 16:07)</a>:</h4>
<p>maybe we should rename things, e.g. <code>subset_anywhere</code> and <code>subset_somewhere</code></p>



<a name="126705412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126705412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126705412">(May 17 2018 at 16:19)</a>:</h4>
<p>so you want me to start from this last part?</p>



<a name="126705415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126705415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126705415">(May 17 2018 at 16:19)</a>:</h4>
<p>if I got it correctly first part shouldn't be hard</p>



<a name="126705416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126705416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126705416">(May 17 2018 at 16:20)</a>:</h4>
<p>I mean, I just need to figure out how to add invalidates</p>



<a name="126705461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126705461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126705461">(May 17 2018 at 16:20)</a>:</h4>
<p>and from there should be easy</p>



<a name="126705469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126705469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126705469">(May 17 2018 at 16:20)</a>:</h4>
<p>but anyway I can start from that last part</p>



<a name="126706211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126706211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126706211">(May 17 2018 at 16:40)</a>:</h4>
<blockquote>
<p>so you want me to start from this last part?</p>
</blockquote>
<p>I think so? but we could look at the first part too, it's just that it needs some <code>Invalidates</code> tuples as inputs</p>



<a name="126708401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708401">(May 17 2018 at 17:25)</a>:</h4>
<p>that part kind of continues the other PR I had</p>



<a name="126708403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708403">(May 17 2018 at 17:25)</a>:</h4>
<p>which just added the fields</p>



<a name="126708455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708455">(May 17 2018 at 17:26)</a>:</h4>
<p>but yeah, I guess we would need a proper invalidates input file</p>



<a name="126708458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708458">(May 17 2018 at 17:26)</a>:</h4>
<p>you said that I can get that from Reed's PR, right?</p>



<a name="126708478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708478">(May 17 2018 at 17:27)</a>:</h4>
<p>we can yes</p>



<a name="126708480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708480">(May 17 2018 at 17:27)</a>:</h4>
<p>if you do a local build</p>



<a name="126708482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708482">(May 17 2018 at 17:27)</a>:</h4>
<p>we need a test too</p>



<a name="126708679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708679">(May 17 2018 at 17:31)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/pull/32" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/32">https://github.com/rust-lang-nursery/polonius/pull/32</a> done!</p>



<a name="126708866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126708866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126708866">(May 17 2018 at 17:34)</a>:</h4>
<p>merged</p>



<a name="126709196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709196">(May 17 2018 at 17:40)</a>:</h4>
<p>so do you know what to do next?</p>



<a name="126709225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709225">(May 17 2018 at 17:41)</a>:</h4>
<p>yes</p>



<a name="126709230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709230">(May 17 2018 at 17:42)</a>:</h4>
<p>going to start now</p>



<a name="126709296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709296">(May 17 2018 at 17:42)</a>:</h4>
<p>ok. I'm not sure <em>I</em> know what you are going to do but I'm excited to see =)</p>



<a name="126709451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709451">(May 17 2018 at 17:45)</a>:</h4>
<p>it's a surprise</p>



<a name="126709453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709453">(May 17 2018 at 17:45)</a>:</h4>
<p>:P</p>



<a name="126709505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709505">(May 17 2018 at 17:46)</a>:</h4>
<p>that you will figure out right now because I have a question</p>



<a name="126709506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709506">(May 17 2018 at 17:46)</a>:</h4>
<p>lol</p>



<a name="126709507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709507">(May 17 2018 at 17:46)</a>:</h4>
<div class="codehilite"><pre><span></span>                // potential_errors(R, L, P) :-
                //   invalidated(L, P),
                //   requires(R, L),
                //   region_live_at(R, P).
</pre></div>



<a name="126709513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709513">(May 17 2018 at 17:46)</a>:</h4>
<p>isn't that equals to ...</p>



<a name="126709526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709526">(May 17 2018 at 17:46)</a>:</h4>
<div class="codehilite"><pre><span></span>                // potential_errors(R, L, P) :-
                //   invalidated(L, P),
                //   borrow_live_at(L, P)
</pre></div>



<a name="126709531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709531">(May 17 2018 at 17:47)</a>:</h4>
<p>I know it lacks the R</p>



<a name="126709545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709545">(May 17 2018 at 17:47)</a>:</h4>
<p>now I wonder if we should discard R from borrow_live_at</p>



<a name="126709709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709709">(May 17 2018 at 17:50)</a>:</h4>
<p>that looks equivalent, yes</p>



<a name="126709722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709722">(May 17 2018 at 17:50)</a>:</h4>
<p>I'm not sure if we need the <code>R</code></p>



<a name="126709725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709725">(May 17 2018 at 17:50)</a>:</h4>
<p>we can start without it</p>



<a name="126709731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709731">(May 17 2018 at 17:50)</a>:</h4>
<p>ok</p>



<a name="126709732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709732">(May 17 2018 at 17:50)</a>:</h4>
<p>originally I just had in mind to narrow down to a set of (L, P) pairs</p>



<a name="126709733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709733">(May 17 2018 at 17:50)</a>:</h4>
<p>or even just <em>loans</em></p>



<a name="126709745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709745">(May 17 2018 at 17:50)</a>:</h4>
<p>but both seem useful:</p>



<a name="126709755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709755">(May 17 2018 at 17:51)</a>:</h4>
<p>e.g., we only need the information for the loan L for those points on the path from the entry to P</p>



<a name="126709769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709769">(May 17 2018 at 17:51)</a>:</h4>
<p>but maybe we just start by narrowing down to gather facts for a specific loan</p>



<a name="126709774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709774">(May 17 2018 at 17:51)</a>:</h4>
<p>we could actually test that independently pretty easily</p>



<a name="126709851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709851">(May 17 2018 at 17:52)</a>:</h4>
<p>invalidated or invalidates?</p>



<a name="126709854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709854">(May 17 2018 at 17:52)</a>:</h4>
<p>have seen both terms used</p>



<a name="126709882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709882">(May 17 2018 at 17:53)</a>:</h4>
<p>I think <code>invalidates</code> — I feel like we mostly use present tense :)</p>



<a name="126709899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709899">(May 17 2018 at 17:53)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126709981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709981">(May 17 2018 at 17:54)</a>:</h4>
<p>another question, why borrow_live_at lives outside of if dump_enabled?</p>



<a name="126709987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709987">(May 17 2018 at 17:55)</a>:</h4>
<p>maybe I added it in the wrong place <span class="emoji emoji-1f603" title="smiley">:smiley:</span></p>



<a name="126709988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709988">(May 17 2018 at 17:55)</a>:</h4>
<p>?</p>



<a name="126709993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126709993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126709993">(May 17 2018 at 17:55)</a>:</h4>
<p>checking</p>



<a name="126710005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710005">(May 17 2018 at 17:55)</a>:</h4>
<p>well in naive algorithm happens the same</p>



<a name="126710010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710010">(May 17 2018 at 17:55)</a>:</h4>
<p>it was just copied and pasted</p>



<a name="126710017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710017">(May 17 2018 at 17:55)</a>:</h4>
<p>unsure if that's fine or should all be inside of dump_enabled</p>



<a name="126710136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710136">(May 17 2018 at 17:57)</a>:</h4>
<blockquote>
<p>another question, why borrow_live_at lives outside of if dump_enabled?</p>
</blockquote>
<p>do you mean, if <code>dump_enabled</code> is false, then when do we still compute <code>borrow_live_at</code>  ?</p>



<a name="126710201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710201">(May 17 2018 at 17:58)</a>:</h4>
<p>yes</p>



<a name="126710202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710202">(May 17 2018 at 17:58)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L161-L174" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L161-L174">https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L161-L174</a></p>



<a name="126710207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710207">(May 17 2018 at 17:58)</a>:</h4>
<p>if so, the reason is because — in the absence of <code>invalidates</code> facts — that was the "final output" from the analysis</p>



<a name="126710208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710208">(May 17 2018 at 17:58)</a>:</h4>
<p>is outside the if dump_enabled</p>



<a name="126710212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710212">(May 17 2018 at 17:58)</a>:</h4>
<p>which we then fed to the borrow checker</p>



<a name="126710223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710223">(May 17 2018 at 17:58)</a>:</h4>
<p>once we add the <code>invalidates</code> though, we should be able to change that</p>



<a name="126710226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710226">(May 17 2018 at 17:58)</a>:</h4>
<p>so it is just an 'internal detail'</p>



<a name="126710239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710239">(May 17 2018 at 17:59)</a>:</h4>
<p>and we want to return invalidates?</p>



<a name="126710242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710242">(May 17 2018 at 17:59)</a>:</h4>
<p>and the final output is rather the <code>(L, P)</code> pairs</p>



<a name="126710256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710256">(May 17 2018 at 17:59)</a>:</h4>
<p>no, <code>invalidates</code> is an input</p>



<a name="126710259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710259">(May 17 2018 at 17:59)</a>:</h4>
<p>telling us which loan is invalidated where</p>



<a name="126710262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710262">(May 17 2018 at 17:59)</a>:</h4>
<p>the <em>output</em> is the set of loans which are invalidated but <em>still required</em></p>



<a name="126710265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710265">(May 17 2018 at 17:59)</a>:</h4>
<p>yep, I'm not sure how the output of this thing is used</p>



<a name="126710270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710270">(May 17 2018 at 17:59)</a>:</h4>
<p>(<code>borrow_live_at</code> tells us which loans are <em>still required</em> and where)</p>



<a name="126710275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710275">(May 17 2018 at 17:59)</a>:</h4>
<p>so it's basically the intersection of <code>invalidates</code> and <code>borrow_live_at</code>)</p>



<a name="126710478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710478">(May 17 2018 at 18:03)</a>:</h4>
<p>when I've said <code>and we want to return invalidates?</code> I meant we want to return potential_errors?</p>



<a name="126710590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710590">(May 17 2018 at 18:05)</a>:</h4>
<p>so that's basically what timely_opt will use</p>



<a name="126710660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126710660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126710660">(May 17 2018 at 18:06)</a>:</h4>
<blockquote>
<p>when I've said <code>and we want to return invalidates?</code> I meant we want to return potential_errors?</p>
</blockquote>
<p>right</p>



<a name="126711237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711237">(May 17 2018 at 18:19)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang-nursery/polonius/pull/34" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34">https://github.com/rust-lang-nursery/polonius/pull/34</a></p>



<a name="126711240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711240">(May 17 2018 at 18:19)</a>:</h4>
<p>to start discussion again</p>



<a name="126711241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711241">(May 17 2018 at 18:19)</a>:</h4>
<p>need to check this but I like to push soon</p>



<a name="126711277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711277">(May 17 2018 at 18:20)</a>:</h4>
<p>(in a call just now)</p>



<a name="126711738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711738">(May 17 2018 at 18:30)</a>:</h4>
<p>(the <code>potential_errors(L, P) :- invalidates(L, P), borrow_live_at(L, P).</code> is interesting because we can probably use a <code>semijoin</code> there)</p>



<a name="126711759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711759">(May 17 2018 at 18:31)</a>:</h4>
<p>doh, I forgot to fix that</p>



<a name="126711761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711761">(May 17 2018 at 18:31)</a>:</h4>
<p>a join is "wrong"</p>



<a name="126711764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711764">(May 17 2018 at 18:32)</a>:</h4>
<p>it's an intersection what we need there</p>



<a name="126711810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711810">(May 17 2018 at 18:32)</a>:</h4>
<p>going to check differential-dataflow API to check how to do an intersection</p>



<a name="126711982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711982">(May 17 2018 at 18:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> maybe something like <code>invalidates.semijoin(&amp;borrow_live_at)</code></p>



<a name="126711999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126711999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126711999">(May 17 2018 at 18:36)</a>:</h4>
<p>semijoin is intersection?</p>



<a name="126712004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712004">(May 17 2018 at 18:36)</a>:</h4>
<p>where is that more or less explained?</p>



<a name="126712023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712023">(May 17 2018 at 18:37)</a>:</h4>
<p>it's a bit like filter IIRC (bear in mind I'm a beginner in this too)</p>



<a name="126712035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712035">(May 17 2018 at 18:37)</a>:</h4>
<p><a href="https://docs.rs/differential-dataflow/0.5.0/differential_dataflow/operators/join/trait.Join.html#tymethod.semijoin" target="_blank" title="https://docs.rs/differential-dataflow/0.5.0/differential_dataflow/operators/join/trait.Join.html#tymethod.semijoin">https://docs.rs/differential-dataflow/0.5.0/differential_dataflow/operators/join/trait.Join.html#tymethod.semijoin</a></p>



<a name="126712121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712121">(May 17 2018 at 18:39)</a>:</h4>
<p>the thing is that uses a K and I have a pair</p>



<a name="126712135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712135">(May 17 2018 at 18:39)</a>:</h4>
<p>I would need to semijoin against the first element then reverse the pairs to semijoin against the second element and reverse again to return</p>



<a name="126712646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712646">(May 17 2018 at 18:51)</a>:</h4>
<blockquote>
<p>semijoin is intersection?</p>
</blockquote>
<p>yes</p>



<a name="126712782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712782">(May 17 2018 at 18:54)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> but it receives just one key</p>



<a name="126712790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712790">(May 17 2018 at 18:54)</a>:</h4>
<p>I guess I need to do what I've mentioned then</p>



<a name="126712798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712798">(May 17 2018 at 18:55)</a>:</h4>
<blockquote>
<p>I would need to semijoin against the first element then reverse the pairs to semijoin against the second element and reverse again to return</p>
</blockquote>
<p><span class="emoji emoji-261d" title="point up">:point_up:</span></p>



<a name="126712988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126712988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126712988">(May 17 2018 at 18:59)</a>:</h4>
<blockquote>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> but it receives just one key</p>
</blockquote>
<p>well, it is sort of filter + intersection :) that is, you start out with a set of of type <code>(K, V)</code> and you semijoin with another set of type <code>K</code>; you get at the end all the <code>(K, V)</code> pairs where the keys appeared in both</p>



<a name="126713058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126713058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126713058">(May 17 2018 at 19:00)</a>:</h4>
<p>probably, yes, or we could potentially reorder the arguments :) but as a general rule of thumb, <code>map</code> is pretty cheap</p>



<a name="126713180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126713180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126713180">(May 17 2018 at 19:02)</a>:</h4>
<p>ok</p>



<a name="126713190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126713190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126713190">(May 17 2018 at 19:03)</a>:</h4>
<p>thought there was a simpler way to do it</p>



<a name="126713363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126713363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126713363">(May 17 2018 at 19:06)</a>:</h4>
<div class="codehilite"><pre><span></span>                let potential_errors = borrow_live_at
                    .semijoin(&amp;invalidates.map(|(l, _p)| l))
                    .map(|(l, p)| (p, l))
                    .semijoin(&amp;invalidates.map(|(_l, p)| p))
                    .map(|(p, l)| (l, p))
                    .distinct_total();
</pre></div>



<a name="126713464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126713464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126713464">(May 17 2018 at 19:08)</a>:</h4>
<p>that's the way I can think of doing it</p>



<a name="126720449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720449">(May 17 2018 at 21:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I'm a bit confused by your Pr</p>



<a name="126720452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720452">(May 17 2018 at 21:56)</a>:</h4>
<p>well, by that snippet you quoted right there, acutally</p>



<a name="126720459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720459">(May 17 2018 at 21:57)</a>:</h4>
<p><code>borrow_live_at</code> has what type? doesn't it have the type <code>(L, P)</code></p>



<a name="126720465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720465">(May 17 2018 at 21:57)</a>:</h4>
<p><em>oh</em> I think I see</p>



<a name="126720466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720466">(May 17 2018 at 21:57)</a>:</h4>
<p>yah that's not right :P</p>



<a name="126720468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720468">(May 17 2018 at 21:57)</a>:</h4>
<p>I think we want to compute basically <code>invalidates intersect borrow_live_at</code></p>



<a name="126720469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720469">(May 17 2018 at 21:57)</a>:</h4>
<p>you probably want to do:</p>



<a name="126720470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720470">(May 17 2018 at 21:57)</a>:</h4>
<div class="codehilite"><pre><span></span>borrow_live_at.map(|(l, p)| ((l, p), ()))
  .semijoin(&amp;invalidates)
  .distinct_total()
</pre></div>



<a name="126720512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720512">(May 17 2018 at 21:58)</a>:</h4>
<p>the first map is the key :)</p>



<a name="126720514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720514">(May 17 2018 at 21:58)</a>:</h4>
<p>introducing the dummy <code>()</code> type means that the "key" you are intersecting on is the <code>(l, p)</code> pair</p>



<a name="126720515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720515">(May 17 2018 at 21:58)</a>:</h4>
<p>there should probably be a helper for that, blame <span class="user-mention" data-user-id="116609">@Frank McSherry</span> :)</p>



<a name="126720522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720522">(May 17 2018 at 21:59)</a>:</h4>
<p>(or, I don't know, maybe there is...)</p>



<a name="126720577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720577">(May 17 2018 at 22:00)</a>:</h4>
<p>oh, I've tried something very similar but not that</p>



<a name="126720589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720589">(May 17 2018 at 22:00)</a>:</h4>
<p>did <code>borrow_live_at.map(|(l, p)| ((l, p)))</code></p>



<a name="126720592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720592">(May 17 2018 at 22:00)</a>:</h4>
<p>ah</p>



<a name="126720597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720597">(May 17 2018 at 22:00)</a>:</h4>
<p>but you need a value, now I see :)</p>



<a name="126720599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720599">(May 17 2018 at 22:00)</a>:</h4>
<p>re: testing, it is hard to test the location-insensitive analysis in isolation</p>



<a name="126720602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720602">(May 17 2018 at 22:00)</a>:</h4>
<p>because it produces a different set of tuples from the location-sensitive one</p>



<a name="126720603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720603">(May 17 2018 at 22:00)</a>:</h4>
<p>so we can't compare them against each other</p>



<a name="126720606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720606">(May 17 2018 at 22:00)</a>:</h4>
<p>but if we add the <em>invalidates</em> facts</p>



<a name="126720608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720608">(May 17 2018 at 22:00)</a>:</h4>
<p>that is different</p>



<a name="126720610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720610">(May 17 2018 at 22:00)</a>:</h4>
<p>since now we shoudl be producing just the set of errors</p>



<a name="126720613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720613">(May 17 2018 at 22:01)</a>:</h4>
<p>and that should be a relatively small set we can inspect by hand</p>



<a name="126720620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720620">(May 17 2018 at 22:01)</a>:</h4>
<p>anyway, I gotta run now</p>



<a name="126720624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720624">(May 17 2018 at 22:01)</a>:</h4>
<p>I think what we're going to want to do next is to kind of integrate the location-insensitive and the timely-opt into one, as I was trying to describe earlier</p>



<a name="126720625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720625">(May 17 2018 at 22:01)</a>:</h4>
<p>roughly the idea is this:</p>



<a name="126720679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720679">(May 17 2018 at 22:02)</a>:</h4>
<p>actually, I'll note this part in github</p>



<a name="126720751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720751">(May 17 2018 at 22:05)</a>:</h4>
<p>never mind, that was a bit trickier than I thought</p>



<a name="126720752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126720752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126720752">(May 17 2018 at 22:05)</a>:</h4>
<p>I wrote <a href="https://github.com/rust-lang-nursery/polonius/issues/29#issuecomment-390028969" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/29#issuecomment-390028969">something</a> but not much</p>



<a name="126729171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126729171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126729171">(May 18 2018 at 02:54)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> don't remember what was expected for get_default but the example does not compile</p>



<a name="126729226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126729226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126729226">(May 18 2018 at 02:57)</a>:</h4>
<p>anyway generated the facts, have the invalidates.facts in particular</p>



<a name="126747854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747854">(May 18 2018 at 13:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm here</p>



<a name="126747855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747855">(May 18 2018 at 13:01)</a>:</h4>
<p>so</p>



<a name="126747869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747869">(May 18 2018 at 13:01)</a>:</h4>
<p>first get_default doesn't compile, I guess that was the expected result</p>



<a name="126747910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747910">(May 18 2018 at 13:02)</a>:</h4>
<p>anyway I got the invalidates.facts</p>



<a name="126747915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747915">(May 18 2018 at 13:02)</a>:</h4>
<p>have ran examples</p>



<a name="126747938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747938">(May 18 2018 at 13:02)</a>:</h4>
<p>we would need to check that everything is correct I guess :)</p>



<a name="126747957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126747957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126747957">(May 18 2018 at 13:03)</a>:</h4>
<p>where are those formats explained?</p>



<a name="126748127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748127">(May 18 2018 at 13:07)</a>:</h4>
<p>and also ... should I use Reed's new example with it's inputs or get_default?</p>



<a name="126748132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748132">(May 18 2018 at 13:07)</a>:</h4>
<blockquote>
<p>first get_default doesn't compile, I guess that was the expected result</p>
</blockquote>
<p>yes, it is</p>



<a name="126748171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748171">(May 18 2018 at 13:08)</a>:</h4>
<blockquote>
<p>and also ... should I use Reed's new example with it's inputs or get_default?</p>
</blockquote>
<p>I think we should continue with <code>get_default</code> first</p>



<a name="126748177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748177">(May 18 2018 at 13:08)</a>:</h4>
<div class="codehilite"><pre><span></span>&quot;Mid(bb5[1])&quot;   &quot;bw1&quot;
</pre></div>



<a name="126748182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748182">(May 18 2018 at 13:08)</a>:</h4>
<p>the format is just one tuple per line, separated by tabs</p>



<a name="126748196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748196">(May 18 2018 at 13:08)</a>:</h4>
<p>I'm getting just that for ok function of get_default</p>



<a name="126748205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748205">(May 18 2018 at 13:08)</a>:</h4>
<p>which relation is that?</p>



<a name="126748228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748228">(May 18 2018 at 13:09)</a>:</h4>
<p>unsure what do you mean</p>



<a name="126748241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748241">(May 18 2018 at 13:09)</a>:</h4>
<p>where is that output coming from? :)</p>



<a name="126748295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748295">(May 18 2018 at 13:10)</a>:</h4>
<p>ok function of <a href="http://get_default.rs" target="_blank" title="http://get_default.rs">get_default.rs</a></p>



<a name="126748296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748296">(May 18 2018 at 13:10)</a>:</h4>
<p>let me paste the code</p>



<a name="126748307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748307">(May 18 2018 at 13:10)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">ok</span><span class="p">(</span><span class="n">map</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="n">Map</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kp">&amp;</span><span class="nb">String</span> <span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">loop</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">match</span><span class="w"> </span><span class="n">map</span><span class="p">.</span><span class="n">get</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nb">Some</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="k">return</span><span class="w"> </span><span class="n">v</span><span class="p">;</span><span class="w"></span>
<span class="w">            </span><span class="p">}</span><span class="w"></span>
<span class="w">            </span><span class="nb">None</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="n">map</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="nb">String</span>::<span class="n">new</span><span class="p">());</span><span class="w"> </span><span class="c1">// Just AST errors here</span>
<span class="w">                </span><span class="c1">//~^ ERROR borrowed as immutable (Ast)</span>
<span class="w">            </span><span class="p">}</span><span class="w"></span>
<span class="w">        </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="126748329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748329">(May 18 2018 at 13:10)</a>:</h4>
<p>would be nice to have the mir dump around for when you run the stuff</p>



<a name="126748351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748351">(May 18 2018 at 13:11)</a>:</h4>
<p>I'm generating it, otherwise I have no idea what bb5 is</p>



<a name="126748353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748353">(May 18 2018 at 13:11)</a>:</h4>
<p>:)</p>



<a name="126748376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748376">(May 18 2018 at 13:12)</a>:</h4>
<p>what is bw1?</p>



<a name="126748640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748640">(May 18 2018 at 13:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> that is "loan 1"</p>



<a name="126748644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748644">(May 18 2018 at 13:16)</a>:</h4>
<p>in the compiler, we still call that <code>Borrow</code></p>



<a name="126748647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748647">(May 18 2018 at 13:16)</a>:</h4>
<p>and the <code>Debug</code> impl prints <code>bw</code></p>



<a name="126748650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748650">(May 18 2018 at 13:16)</a>:</h4>
<p>ok :)</p>



<a name="126748652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748652">(May 18 2018 at 13:16)</a>:</h4>
<p>so basically you have to look at the <code>-Zmir-dump</code> to correlate</p>



<a name="126748654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748654">(May 18 2018 at 13:17)</a>:</h4>
<p>yes</p>



<a name="126748657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748657">(May 18 2018 at 13:17)</a>:</h4>
<p>will do later</p>



<a name="126748669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748669">(May 18 2018 at 13:17)</a>:</h4>
<p>but that is telling you that bb5[1], whatever that is, has <code>bw1</code> in scope (or maybe it is the error?)</p>



<a name="126748674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748674">(May 18 2018 at 13:17)</a>:</h4>
<p>I'm still not sure what output you are showing me</p>



<a name="126748675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748675">(May 18 2018 at 13:17)</a>:</h4>
<p>today is a day a bit more complicated than usual</p>



<a name="126748678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748678">(May 18 2018 at 13:17)</a>:</h4>
<p>I gues I have to look at your brancvh</p>



<a name="126748687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748687">(May 18 2018 at 13:17)</a>:</h4>
<p>yeah sorry chatting also with @pnkfelix (as you can probably see :)</p>



<a name="126748689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748689">(May 18 2018 at 13:17)</a>:</h4>
<p>so I'm a bit lagged</p>



<a name="126748699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748699">(May 18 2018 at 13:17)</a>:</h4>
<p>no worries</p>



<a name="126748752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748752">(May 18 2018 at 13:18)</a>:</h4>
<p>this output did come from your branch, right?</p>



<a name="126748758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748758">(May 18 2018 at 13:18)</a>:</h4>
<p>the thing I'm showing is the content of invalidates.facts when ran using Reed's branch for the function ok of the <a href="http://get_default.rs" target="_blank" title="http://get_default.rs">get_default.rs</a></p>



<a name="126748762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748762">(May 18 2018 at 13:18)</a>:</h4>
<blockquote>
<p>the thing I'm showing is the content of invalidates.facts when ran using Reed's branch for the function ok of the <a href="http://get_default.rs" target="_blank" title="http://get_default.rs">get_default.rs</a></p>
</blockquote>
<p>ah ok</p>



<a name="126748764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748764">(May 18 2018 at 13:18)</a>:</h4>
<p>so that is saying:</p>



<a name="126748765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748765">(May 18 2018 at 13:18)</a>:</h4>
<p>sorry for not clarifying that</p>



<a name="126748767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748767">(May 18 2018 at 13:18)</a>:</h4>
<p>at that point</p>



<a name="126748773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748773">(May 18 2018 at 13:18)</a>:</h4>
<p>the loan <code>bw1</code> is invalidated</p>



<a name="126748776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748776">(May 18 2018 at 13:18)</a>:</h4>
<p>yep</p>



<a name="126748778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748778">(May 18 2018 at 13:18)</a>:</h4>
<p>what I think would be a good goal now, on your branch,</p>



<a name="126748779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748779">(May 18 2018 at 13:18)</a>:</h4>
<p>is to combine that with <code>region_live_at</code></p>



<a name="126748781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748781">(May 18 2018 at 13:19)</a>:</h4>
<p>er,</p>



<a name="126748785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748785">(May 18 2018 at 13:19)</a>:</h4>
<p><code>borrow_live_at</code></p>



<a name="126748791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748791">(May 18 2018 at 13:19)</a>:</h4>
<p>basically the intersection of those</p>



<a name="126748792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748792">(May 18 2018 at 13:19)</a>:</h4>
<p>is the set of <em>errors</em></p>



<a name="126748800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748800">(May 18 2018 at 13:19)</a>:</h4>
<p>and we expect some errors in this example</p>



<a name="126748802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748802">(May 18 2018 at 13:19)</a>:</h4>
<p>yep, all that is already done</p>



<a name="126748807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748807">(May 18 2018 at 13:19)</a>:</h4>
<p>I need just to check if it's correct by hand</p>



<a name="126748814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748814">(May 18 2018 at 13:19)</a>:</h4>
<p>given we said that tests are a bit complex to build</p>



<a name="126748896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748896">(May 18 2018 at 13:21)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang-nursery/polonius/pull/34" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34">https://github.com/rust-lang-nursery/polonius/pull/34</a></p>



<a name="126748917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748917">(May 18 2018 at 13:21)</a>:</h4>
<p>sorry for not giving more context, I assumed you were following the talk we had yesterday</p>



<a name="126748966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748966">(May 18 2018 at 13:22)</a>:</h4>
<p>which is impossible given the amount of talks you're having at the same time :P</p>



<a name="126748975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748975">(May 18 2018 at 13:22)</a>:</h4>
<p>how many open threads do you have? :P</p>



<a name="126748977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748977">(May 18 2018 at 13:22)</a>:</h4>
<p>ah right :) we did that already</p>



<a name="126748983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748983">(May 18 2018 at 13:22)</a>:</h4>
<blockquote>
<p>how many open threads do you have? :P</p>
</blockquote>
<p>don't ask</p>



<a name="126748989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748989">(May 18 2018 at 13:22)</a>:</h4>
<p>ok so yeah that looks right</p>



<a name="126748993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126748993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126748993">(May 18 2018 at 13:22)</a>:</h4>
<p>hehehe</p>



<a name="126749005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749005">(May 18 2018 at 13:22)</a>:</h4>
<p>one thing</p>



<a name="126749011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749011">(May 18 2018 at 13:23)</a>:</h4>
<p>yeah, it wasn't that much empathetic to go just straight to a very particular part of the code :)</p>



<a name="126749017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749017">(May 18 2018 at 13:23)</a>:</h4>
<p>I think we should alter the output</p>



<a name="126749022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749022">(May 18 2018 at 13:23)</a>:</h4>
<p>that is, the <code>Output</code> struct</p>



<a name="126749023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749023">(May 18 2018 at 13:23)</a>:</h4>
<p>ok</p>



<a name="126749026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749026">(May 18 2018 at 13:23)</a>:</h4>
<p>tell me</p>



<a name="126749029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749029">(May 18 2018 at 13:23)</a>:</h4>
<p>so that this new result is the "main" result</p>



<a name="126749041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749041">(May 18 2018 at 13:23)</a>:</h4>
<p>and <code>borrow_live_at</code> etc is only populated when we have the 'verbose' output</p>



<a name="126749056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749056">(May 18 2018 at 13:23)</a>:</h4>
<p>er, hmm, not sure, it depends how we want to go</p>



<a name="126749074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749074">(May 18 2018 at 13:23)</a>:</h4>
<p>anyway we should at least make sure to dump <code>potential_errors</code></p>



<a name="126749075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749075">(May 18 2018 at 13:23)</a>:</h4>
<p>I'm already doing that</p>



<a name="126749079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749079">(May 18 2018 at 13:23)</a>:</h4>
<p>ok</p>



<a name="126749123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749123">(May 18 2018 at 13:24)</a>:</h4>
<p>I couldn't quite tell from a quick glance</p>



<a name="126749126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749126">(May 18 2018 at 13:24)</a>:</h4>
<p>or I didn't follow you correctly :P</p>



<a name="126749134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749134">(May 18 2018 at 13:24)</a>:</h4>
<p>anyway however we do it, can you get the results of <code>potential_errors</code> for the <code>get_default</code> example?</p>



<a name="126749152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749152">(May 18 2018 at 13:24)</a>:</h4>
<p>so ...</p>



<a name="126749153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749153">(May 18 2018 at 13:24)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-9ff1367614ea2af6c399ce0c2500c4d4R38" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-9ff1367614ea2af6c399ce0c2500c4d4R38">https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-9ff1367614ea2af6c399ce0c2500c4d4R38</a></p>



<a name="126749174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749174">(May 18 2018 at 13:25)</a>:</h4>
<p>that's Output modified</p>



<a name="126749192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749192">(May 18 2018 at 13:25)</a>:</h4>
<p>here <a href="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R169" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R169">https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R169</a>, I've moved borrow_live_at to when it's verbose</p>



<a name="126749244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749244">(May 18 2018 at 13:26)</a>:</h4>
<p>and here <a href="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R185" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R185">https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R185</a> we are returning potential_errors</p>



<a name="126749477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749477">(May 18 2018 at 13:30)</a>:</h4>
<p>you're right, I need to do something else in output/mod.rs</p>



<a name="126749478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749478">(May 18 2018 at 13:30)</a>:</h4>
<p>it dumps borrow_live_at</p>



<a name="126749484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749484">(May 18 2018 at 13:30)</a>:</h4>
<p>I need to dump that for all the algorithms but for insensitive one</p>



<a name="126749521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749521">(May 18 2018 at 13:31)</a>:</h4>
<p>I wonder if it's really time to merge the insensitive one with <code>timely-opt</code></p>



<a name="126749525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749525">(May 18 2018 at 13:31)</a>:</h4>
<p>I can't decide between trying to keep it as its own thing</p>



<a name="126749535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749535">(May 18 2018 at 13:31)</a>:</h4>
<p>and merging</p>



<a name="126749538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749538">(May 18 2018 at 13:31)</a>:</h4>
<p>that said</p>



<a name="126749545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749545">(May 18 2018 at 13:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> maybe you should make a new branch and just integrate the "errors" into the other algorithsm</p>



<a name="126749591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749591">(May 18 2018 at 13:32)</a>:</h4>
<p>modify <code>Output</code> then so that this is the "main output" for everything</p>



<a name="126749596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749596">(May 18 2018 at 13:32)</a>:</h4>
<p>or, maybe not a separate branch</p>



<a name="126749601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749601">(May 18 2018 at 13:32)</a>:</h4>
<p>but point is, you can do the same thing for all algorithms</p>



<a name="126749613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749613">(May 18 2018 at 13:32)</a>:</h4>
<p>yeah, makes sense</p>



<a name="126749643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749643">(May 18 2018 at 13:33)</a>:</h4>
<p>anyway, I wanted to run this real quick, looking how to enabled dump from command line</p>



<a name="126749743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749743">(May 18 2018 at 13:34)</a>:</h4>
<p>ok, found it</p>



<a name="126749764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749764">(May 18 2018 at 13:34)</a>:</h4>
<p>in this case potential_errors is empty for both ok and err fns</p>



<a name="126749790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749790">(May 18 2018 at 13:35)</a>:</h4>
<p>I'd need to check all this properly</p>



<a name="126749879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749879">(May 18 2018 at 13:36)</a>:</h4>
<blockquote>
<p>in this case potential_errors is empty for both ok and err fns</p>
</blockquote>
<p>hmm :)</p>



<a name="126749888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749888">(May 18 2018 at 13:37)</a>:</h4>
<p>yeah it seems like we need to Dump All The tuples then</p>



<a name="126749889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749889">(May 18 2018 at 13:37)</a>:</h4>
<p>to try and see what's up w/ that</p>



<a name="126749907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749907">(May 18 2018 at 13:37)</a>:</h4>
<p>yeah I did that, dumped all</p>



<a name="126749914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749914">(May 18 2018 at 13:37)</a>:</h4>
<p>but yeah, I need to take a look more carefully</p>



<a name="126749987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749987">(May 18 2018 at 13:38)</a>:</h4>
<p>ok, yeah, it's kind of annoying to process the raw data</p>



<a name="126749989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749989">(May 18 2018 at 13:39)</a>:</h4>
<p>you sort of have to cross-reference with the mir-dump</p>



<a name="126749994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749994">(May 18 2018 at 13:39)</a>:</h4>
<p>this is why I wanted to connect it to rustc :)</p>



<a name="126749998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126749998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126749998">(May 18 2018 at 13:39)</a>:</h4>
<p>:)</p>



<a name="126750000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750000">(May 18 2018 at 13:39)</a>:</h4>
<p>in a bit maybe we can look it over together...</p>



<a name="126750003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750003">(May 18 2018 at 13:39)</a>:</h4>
<p>ok</p>



<a name="126750004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750004">(May 18 2018 at 13:39)</a>:</h4>
<p>ping me</p>



<a name="126750010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750010">(May 18 2018 at 13:39)</a>:</h4>
<p>I'm not sure I have time today</p>



<a name="126750018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750018">(May 18 2018 at 13:39)</a>:</h4>
<p>may have some spare minutes between meetings and stuff but ping me</p>



<a name="126750079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126750079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126750079">(May 18 2018 at 13:40)</a>:</h4>
<p>k</p>



<a name="126927454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927454">(May 22 2018 at 15:00)</a>:</h4>
<p>just checking, we're still not 100% sure on how to best integrate the location-insensitive analysis results into the sensitive analysis right ?</p>



<a name="126927470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927470">(May 22 2018 at 15:00)</a>:</h4>
<p>well I'm not sure the <em>best</em> way. I can think of a few simple ways.</p>



<a name="126927473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927473">(May 22 2018 at 15:00)</a>:</h4>
<p>simplest possible way: does clap pass?</p>



<a name="126927475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927475">(May 22 2018 at 15:00)</a>:</h4>
<p>if so, we can just use it as a binary test :)</p>



<a name="126927493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927493">(May 22 2018 at 15:01)</a>:</h4>
<p>that's what I was thinking at first :)</p>



<a name="126927494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927494">(May 22 2018 at 15:01)</a>:</h4>
<p>next simplest way: take the set of loans where potential errors occur; use that to limit the <code>requires</code></p>



<a name="126927509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927509">(May 22 2018 at 15:01)</a>:</h4>
<p>next next simplest way: take the set of regions "linked" to those borrows, limit <code>subset</code> to those regions</p>



<a name="126927512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927512">(May 22 2018 at 15:01)</a>:</h4>
<p>that was roughly what I had in mind</p>



<a name="126927524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927524">(May 22 2018 at 15:01)</a>:</h4>
<p>clap does pass the loc-insensitive quite fast</p>



<a name="126927709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927709">(May 22 2018 at 15:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> how fast? :)</p>



<a name="126927720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927720">(May 22 2018 at 15:04)</a>:</h4>
<p>you'll be pleased I think</p>



<a name="126927729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927729">(May 22 2018 at 15:05)</a>:</h4>
<p>I hope at least</p>



<a name="126927753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927753">(May 22 2018 at 15:05)</a>:</h4>
<p>datafrog_opt on this machine is around 5.5s on clap, loc-insensitive is 700-800ms</p>



<a name="126927812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927812">(May 22 2018 at 15:06)</a>:</h4>
<p>awesome!</p>



<a name="126927841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927841">(May 22 2018 at 15:07)</a>:</h4>
<p>I should have mentioned this yesterday sorry, I thought we wouldn't only want to check if any potential errors were found before rerunning the sensitive analysis</p>



<a name="126927901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927901">(May 22 2018 at 15:08)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> well, it seems fine, though we still have to account for "universal regions" in the analysis, which we haven't, but that should be easy enough</p>



<a name="126927905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927905">(May 22 2018 at 15:08)</a>:</h4>
<p>and I think clap would still pass</p>



<a name="126927906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927906">(May 22 2018 at 15:08)</a>:</h4>
<p>it's also why I/we were wondering with Frank whether clap was a representative worst case</p>



<a name="126927919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927919">(May 22 2018 at 15:09)</a>:</h4>
<p>probably not</p>



<a name="126927940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927940">(May 22 2018 at 15:09)</a>:</h4>
<p>I think we're definitely at the point where the right thing to focus on is rustc integration</p>



<a name="126927946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927946">(May 22 2018 at 15:09)</a>:</h4>
<p>which will add overhead of its own that must be sanded down</p>



<a name="126927951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126927951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126927951">(May 22 2018 at 15:09)</a>:</h4>
<p>account for universal regions in the loc-insensitive analysis ?</p>



<a name="126928010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928010">(May 22 2018 at 15:10)</a>:</h4>
<p>just in general</p>



<a name="126928014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928014">(May 22 2018 at 15:10)</a>:</h4>
<p>we're not accounting for them</p>



<a name="126928016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928016">(May 22 2018 at 15:10)</a>:</h4>
<p>in particular:</p>



<a name="126928020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928020">(May 22 2018 at 15:10)</a>:</h4>
<p>(ofc datafrog_opt with leapjoin is &lt;4.4s)</p>



<a name="126928036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928036">(May 22 2018 at 15:11)</a>:</h4>
<p>in an example like this:</p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">foo</span><span class="p">(</span><span class="n">x</span>: <span class="kp">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="kt">u32</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kp">&amp;</span><span class="na">&#39;b</span><span class="w"> </span><span class="kt">u32</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>we would compute a <code>subset('a, 'b)</code> relation, which we can use to report an error. But we have to use this to inform the set of "potential errors". I've not really thought much about how to do this but shouldn't be very hard.</p>



<a name="126928040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928040">(May 22 2018 at 15:11)</a>:</h4>
<p>(right now all the errors we are reporting have to do with violated loans)</p>



<a name="126928048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928048">(May 22 2018 at 15:12)</a>:</h4>
<p>(but that's not the only kind of error we have the responsibility to detect)</p>



<a name="126928101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928101">(May 22 2018 at 15:12)</a>:</h4>
<p>oh ok, I guess the diagnostics work will have an impact on the analysis, to get the data it needs</p>



<a name="126928106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928106">(May 22 2018 at 15:12)</a>:</h4>
<p>(that said, it's a fundamentally similar analysis)</p>



<a name="126928121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928121">(May 22 2018 at 15:13)</a>:</h4>
<p>you .. might even be able to model universal regions as loans? (that never get killed) .. at one point I was doing that, I forget why I stopped. Anyway.</p>



<a name="126928303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928303">(May 22 2018 at 15:17)</a>:</h4>
<p>that said, datafrog_opt doesn't produce error points yet, so it's still not "realistic" -- want me to do that ?</p>



<a name="126928471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928471">(May 22 2018 at 15:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> yes</p>



<a name="126928476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928476">(May 22 2018 at 15:20)</a>:</h4>
<p>that goes with what <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> and I were saying about how it would be useful to make "errors" the <em>primary</em> output for all analyses (and <code>borrow_live_at</code> just a "detail" you see with <code>-v</code>)</p>



<a name="126928653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928653">(May 22 2018 at 15:25)</a>:</h4>
<p>I'm going to do all this if you're fine</p>



<a name="126928665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928665">(May 22 2018 at 15:25)</a>:</h4>
<p>need to read all that you've said :)</p>



<a name="126928673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126928673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126928673">(May 22 2018 at 15:25)</a>:</h4>
<p>need to do some minor things unrelated to Rust before also</p>



<a name="126929071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126929071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126929071">(May 22 2018 at 15:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> "all this" being the switch to "errors" being the primary output you mean ? (I was almost done producing errors in datafrog_opt)</p>



<a name="126933581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933581">(May 22 2018 at 17:14)</a>:</h4>
<p>@lqd yes, and other things :)</p>



<a name="126933590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933590">(May 22 2018 at 17:14)</a>:</h4>
<p>but great if you already did :)</p>



<a name="126933591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933591">(May 22 2018 at 17:14)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> btw producing the errors will slow down clap as we now have to do a big join with <code>borrow_live_at</code>. I'm not too worried because 1) leapjoin should help with these a lot (and I will try it out just after posting the PR in a couple minutes) 2) it's not strictly necessary to maintain this relation, except for the verbose mode where we display it, otherwise we can fold it into <code>errors</code> 3) for the precise clap benchmark, the loc-insensitive pass will make it that this one never runs (or limit its work, as we talked about)</p>



<a name="126933625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933625">(May 22 2018 at 17:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> no worries we can work on it together <span class="emoji emoji-1f44d" title="thumbs up">:thumbs_up:</span> I will not modify the dumped output and so on</p>



<a name="126933632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933632">(May 22 2018 at 17:15)</a>:</h4>
<p>can producing errors only be done if there is an error? would that speed anything up?</p>



<a name="126933635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933635">(May 22 2018 at 17:15)</a>:</h4>
<p>or do "the other things" :)</p>



<a name="126933804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933804">(May 22 2018 at 17:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116155">@Jake Goulding</span> there's something planned in that vein if I understand correctly what you mean: a fast pass that tries to find "potential errors" to either bypass the more complete analysis or at least filter the data for which it will run</p>



<a name="126933944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126933944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126933944">(May 22 2018 at 17:21)</a>:</h4>
<p>Isn't that the "location-insensitive pre-pass"? I was mostly wondering if the useful error details (the 3 point notes, etc) could be skipped until theres a known error, following the same ideas</p>



<a name="126934157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126934157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126934157">(May 22 2018 at 17:26)</a>:</h4>
<p>I hope so :) it's a bit unclear at the moment how the diagnostics work currently being done will impact the analyses in polonius, the data they will require, but it should be hopefully possible to avoid doing extra work</p>



<a name="126934214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/location-insensitive%20pre-pass%20%28%2329%29/near/126934214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/location-insensitive.20pre-pass.20(.2329).html#126934214">(May 22 2018 at 17:27)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> good observations. Seems fine.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>